1、将数组的奇数移动到前面，偶数在后面
思想：定义一个奇数下标，来标记数组奇数的下标位置，遍历数组遇到奇数就将其移动到j的位置
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> reOrderArray(vector<int>& array) {
        // write code here
        if(array.empty())
            return array;
        //思想，定义一个奇数指针，原来记录奇数的下标从0开始往后加
        int j=0;
        for(int i=0;i<array.size();i++)
        {
            if(array[i]%2==0)
            {
                continue;
            }
            else
            {
                int tmp=array[i];
                int k=i;
                //将当前的位置的奇数移动到j的位置
                while(k>j)
                {
                    array[k]=array[k-1];
                    k--;
                }
                array[j]=tmp;
                j++;
                
            }
        }
        return array;
    }
};
2、出现超过一半的数
思想：定义一个count，遇到相同的就++，否则--，则遍历完元素后，count不为的那个数就是ans
class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        //思路：遍历所有元素，相同count++，不相同就--，count不为0的最后一个值，就是所求的值
        int count=0;
        int ans=0;
        for(int i=0;i<numbers.size();i++)
        {
            if(count==0)
            {
                ans=numbers[i];
                count++;
            }
            else
            {
                if(ans==numbers[i])
                {
                    count++;
                }
                else
                {
                    count--;
                }
            }
        }
        return ans;
    }
};